<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Plugins (ส่วนต่อเข้า) : คู่มือการใช้งาน CodeIgniter</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker_th.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>คู่มือการใช้งาน CodeIgniter เวอร์ชั่น 1.7.2</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">หน้าตารางเนื้อหา</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.in.th/">CodeIgniter.in.th</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">หน้าหลักคู่มือการใช้งาน</a> &nbsp;&#8250;&nbsp;
Plugins (ส่วนต่อเข้า)
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.in.th/user_guide/" />ค้นหาคู่มือการใช้งาน&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="ค้นหา" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Plugins (ส่วนต่อเข้า)</h1>

<p>ปลั๊กอินทำหน้าที่ส่วนใหญ่เหมือน <a href="helpers.html">ผู้ช่วย</a>  มีสิ่งที่แตกต่างอย่างชัดเจนก็คือปลั๊กอินโดยปกติแล้วมีให้ใช้เพียงฟังก์ชั่นเดียว แต่ผู้ช่วยมีกลุ่มของฟังก์ชั่นให้เรียกใช้  ผู้ช่วยถูกพิจารณาเป็นแกนส่วนหนึ่งของระบบ ส่วนปลั๊กอินนั้นตั้งใจจะให้ถูกสร้างและถูกแจกจ่ายจากชุมชนของเรา</p>

<p>ปลั๊กอินต่างๆจะต้องถูกบันทึกลงไปในไดเรคทอรี่ <dfn>system/plugins</dfn> หรือคุณสามารถสร้างโฟลเดอร์ที่เรียกว่า  <kbd>plugins</kbd> ภายในโฟลเดอร์ <kbd>application</kbd> และเก็บมันไว้ที่นั้น  CodeIgniter จะหาไปที่ไดเรคทอรี่ <dfn>system/application/plugins</dfn>
ก่อนถ้าไม่มีไดเรคทอรี่นี้อยู่ก็จะไปลองดูในโฟลเดอร์
<dfn>system/plugins</dfn> แทน</p>


<h2>โหลดปลั๊กอิน</h2>

<p>การโหลดปลั๊กอินไฟล์มีวิธีการใช้อย่างง่ายโดยเรียกฟังก์ชั่นตามนี้</p>

<code>$this->load->plugin('<var>name</var>');</code>

<p>โดย <var>name</var> คือชื่อไฟล์ของปลั๊กอินโดยไม่ต้องมีนามสกุล .php หรือคำว่าส่วนของคำว่า "plugin"</p>

<p>ตัวอย่างเช่น สำหรับการโหลดปลั๊กอิน <dfn>Captcha</dfn> ซึ่งมีชื่อว่า <var>captcha_pi.php</var> คุณจะต้องเรียกดังนี้</p>

<code>$this->load->plugin('<var>captcha</var>');</code>



<p>ปลั๊กอินสามารถถูกโหลดขึ้นมาใช้จากที่ไหนก็ได้ภายในฟังก์ชั่นของ<a href="../general/controllers.html">ตัวควบคุม</a> (หรือแม้แต่ไฟล์ <a href="../general/views.html">View</a>  ถึงแม้ว่ามันไม่ใช่การปฎิบัติที่ดีนัก),
โดยคุณต้องโหลดมันก่อนที่จะใช้งานมัน  คุณสามารถโหลดปลั๊กอินของคุณไปในตัวสร้างตัวควบคุมของคุณ (controller constructor)</p>
<code>// ฟั่งก์ชั่น Blog นั้นคือ controller constructor เพราะมีชื่อเดียวกับคลาสใช้ได้ทั้ง PHP 4 และ 5<br />
class Blog extends Controller {<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function Blog(){<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::Controller();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;plugin('captcha');<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}<br />
}<br />
<br />
// หรือบางครั้ง controller constructor สามารถถูกเขียนแบบนี้ก็ได้ใช้ใน PHP 5<br />
class Blog extends Controller {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function __construct()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::Controller();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;plugin('captcha');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}<br />
}</code>
<p>ทำให้มันสามารถถูกเรียกจากทุกๆฟังก์ชั่นได้อย่างอัตโนมัติ หรือคุณจะโหลดปลั๊กอินเฉพาะฟั่งชั่นที่คุณต้องการก็ได้</p>
<p class="important">โปรดสังเกตุ: ฟังก์ชั่นโหลดปลั๊กอินนั้นไม่คืนค่า ดังนั้นอย่าลองกำหนดมันให้กับตัวแปร ให้ใช้มันอย่างที่แสดงไว้</p>


<h2>โหลดหลายปลั๊กอินพร้อมกัน</h2>

<p>ถ้าคุณต้องการที่จะโหลดปลั๊กอินมากกว่า 1 อันคุณสามารถใส่เป็นอาเรย์แบบนี้</p>

<code>$this->load->plugin( <samp>array(</samp>'<var>plugin1</var>', '<var>plugin2</var>', '<var>plugin3</var>'<samp>)</samp> );</code>

<h2>โหลดปลั๊กอินแบบอัตโนมัิติ</h2>

<p>ถ้าคุณพบว่าคุณต้องการใช้ปลั๊กอินทำงานได้ทั่วทั้งระบบคุณสามารถบอก CodeIgniter ให้โหลดมันแบบอัตโนมัติเมื่อระบบเปิดดำเนินการ โดยวิธีทำนั้นให้คุณเปิดไฟล์ <var>application/config/autoload.php</var> และเพิ่มปลั๊กอินที่ต้องการโหลดลงไปในอาเรย์แบบนี้</p>
<code>$autoload['plugin'] =  <samp>array(</samp>'<var>plugin1</var>', '<var>plugin2</var>', '<var>plugin3</var>'<samp>)</samp>;</code>
<h2>การใช้ปลั๊กอิน</h2>

<p>เมื่อคุณโหลดปลั๊กอินเข้าสู่ระบบแล้ว คุณสามารถเรียกมันเหมือนเป็นฟังก์ชั่นมาตรฐานของ PHP ได้เลย ยกตัวอย่างเช่น</p>
<code>&lt;?php<br />
// ไฟล์ปลั๊กอินที่มีชื่อว่า math_pi.php<br />
function plus($x,$y){<br />
&nbsp;&nbsp;&nbsp;&nbsp;return $x+$y;<br />
}<br />
?&gt;<br />
<br />
&lt;?php<br />
// ไฟล์ที่ต้องการเรียกใช้ math โดยในที่นี้เป็น controller มีชื่อว่า examplemath.php<br />
class ExampleMath extends Controller {<br />
&nbsp;&nbsp;&nbsp;&nbsp;function index(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;plugin('math');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo plus(5,3); // คำตอบที่ได้คือ 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
?&gt;</code></div>
<!-- END CONTENT -->


<div id="footer">
<p>
หัวข้ออันก่อน:&nbsp;&nbsp;<a href="helpers.html">Helpers (ผู้ช่วย)</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">บนสุดของหน้า</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">หน้าหลักคู่มือการใช้งาน</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
หัวข้อถัดไป:&nbsp;&nbsp;<a href="libraries.html">วิธีใช้ไลบรารี่ของ CodeIgniter</a>
</p>
<p>คู่มือการใช้งาน CodeIgniter นี้ได้ทำการคัดลอกและดัดแปลงจาก <a href="http://codeigniter.com/user_guide/">CodeIgniter User Guide</a></p><p>
<a href="http://codeigniter.com">CodeIgniter</a>
 ·  Copyright © 2006-2009  · 
<a href="http://ellislab.com/">Ellislab, Inc.</a>
</p>
</div>

</body>
</html>